﻿//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//



namespace KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects
{
    class TestGenericMethodMockable : Mockable<ITestGenericMethod>, ITestGenericMethod
    {
        public void Action<T>(T arg)
        {
            this.Handler.Call(m => m.Action<T>(arg));
        }

        public void Action<T1, T2>(T1 arg1, T2 arg2)
        {
            this.Handler.Call(m => m.Action<T1, T2>(arg1, arg2));
        }

        public void Action(string arg)
        {
            this.Handler.Call(m => m.Action(arg));
        }

        public void Action<T>(T first, string second)
        {
            this.Handler.Call(m => m.Action<T>(first, second));
        }

        public void Action<T>(int first, T second)
        {
            this.Handler.Call(m => m.Action<T>(first, second));
        }

        public T Func<T>()
        {
            return this.Handler.Call(m => m.Func<T>());
        }

        public T Func<T>(T arg)
        {
            return this.Handler.Call(m => m.Func<T>(arg));
        }

        public string Func(string arg)
        {
            return this.Handler.Call(m => m.Func(arg));
        }

        public T1 Func<T1, T2>(T2 arg2)
        {
            return this.Handler.Call(m => m.Func<T1, T2>(arg2));
        }

        public T1 Func<T1, T2>(T1 arg1, T2 arg2)
        {
            return this.Handler.Call(m => m.Func<T1, T2>(arg1, arg2));
        }
    }
}
